package misPilas;

public class Pila{

  private Node tope;
  
  public Pila(){
  	
  	tope = null;
  }
  
  public Node getTope(){
  	
  	return tope;
  	
  }
  
  public void setTope(Node valor){
  	
  	tope = valor;
  }
  
  public boolean pilaVacia(){
  
    if(tope == null)
      return true;
    else
      return false;
  }
  
  public String eliminar(){
  	
    String result = "";
    Node aux = tope;

    if(!pilaVacia()){
       result = aux.getData();
       tope = aux.getNext();
    }

    return result;
  }
  
  public void inserta(String valor){
  
    Node aux = new Node(valor, null);
    if(pilaVacia())
      tope = aux;
    else{
       aux.setNext(tope);
       tope = aux;
    }
  }


   public String elementoTope(){
     String result = "";
     
     if(!pilaVacia())
       result = getTope().getData();
       
     return result;
    }
    
    public int size(){
		
		int resultado = 0;
		Node aux = getTope();
		
		if (!pilaVacia()){
			
		  while(aux != null) {
		  	
		  	resultado++;
		  	aux = aux.getNext();
		  }
		}
		
		return resultado;
	}
	
	public String toString(){
		
		Node aux = getTope();
		String resultado = "";
		
		while(aux != null){
			
			resultado += aux.getData() + " ";
			aux = aux.getNext();
			
		}
		
		return resultado;
	}

	
}